package com.bmps.springcloud.insuredmicroservice.service.underwrite.strategy.accident;

import com.bmps.springcloud.insuredmicroservice.config.accept.ProductConfig;
import com.bmps.springcloud.insuredmicroservice.model.accept.resquest.AcceptRequestDataModel;
import com.bmps.springcloud.insuredmicroservice.model.accept.resquest.ProductModel;
import com.bmps.springcloud.insuredmicroservice.model.underwrite.InsuredModel;
import com.bmps.springcloud.insuredmicroservice.repository.underwrite.coresystem.InsuredCoreRepository;
import com.bmps.springcloud.insuredmicroservice.service.RedisService;

/**
 * @author jackdaw
 */
public interface AccidentStrategy {
    /**
     * 风险保额校验
     *
     * @param acceptRequestDataModel 报文实体对象
     * @param productModel           产品对象
     * @param insuredCoreRepository  操作数据库对象
     * @param redisService           操作Redis数据库对象
     * @param productConfig          配置对象
     * @param object                 扩展参数
     * @return InsuredModel
     */
    InsuredModel checkAccidentInsuranceAmount(AcceptRequestDataModel acceptRequestDataModel, InsuredCoreRepository insuredCoreRepository,
                                              ProductModel productModel, RedisService redisService, ProductConfig productConfig, Object object);

}
